<?php
	// $this->start('css');
 //        echo $this->Html->css('jquery-ui/jquery-ui-1.10.3.custom.min');
 //        //echo $this->Html->css('Index/index');        
 //        echo $this->Html->css('jquery.ui.timepicker');
 //    $this->end();
	
	// $this->start('script');
	// 	echo $this->Html->script("jquery-1.10.2.min");
 //        echo $this->Html->script("jquery-ui-1.10.3.custom.min");
	// 	echo $this->Html->script("prediccion_ruta");
 //        echo $this->Html->script(array(
 //            "jquery.dataTables.min", 
 //            "jquery.ui.timepicker.min", 
 //            ));
	// $this->end();
    $this->assign('title', "Calcular Error de prediccion - miBus");
	
	$recorridos_url = $this->Html->url(array("controller" => "Predicciones", "action" => "obtener_recorridos_realizados_ruta", "ext" => "json"));
	$coordenadas_gps_url = $this->Html->url(array("controller" => "Predicciones", "action" => "obtener_coordenadas_simple_recorrido", "ext" => "json"));
	$coordenadas_ruta_url = $this->Html->url(array("controller" => "Predicciones", "action" => "obtener_coordenadas_ruta", "ext" => "json"));
	
	$base_url = $this->Html->url('/');
?>
<table align="center">
	<tr>
		<td>Ruta:</td>
		<td>
			<select id="id_ruta_id" name="ruta_id" onchange="ruta_seleccionada(this.value);">										
				<option value="0" selected>[Seleccione Ruta]</option>
				<?php				
					foreach ($todas_rutas as $key => $values){
						echo "<option value=\"".$values["id_ruta"]."\">(".$values["id_ruta"].") - ".$values["nombre_ruta"]."</option>";
					}
				?>
			</select>
		</td>
		<td><br /></td>
	</tr>
	<tr>
		<td>Recorridos:</td>
		<td>
			<select id="id_recorrido_id" name="recorrido_id">										
				<option value="0" selected>[Seleccione Recorrido]</option>
			</select>
		</td>
		<td>
			<input type="button" onclick="calcular_error();" value="Calcular Error">
		</td>
	</tr>
	<tr>
		<td>Salida:</td>
		<td>
			<select id="id_tipo_salida" name="tipo_salida">
				<option value="0">Valor Final Solamente</option>
				<option value="1">Calculos Completos</option>
			</select>
		</td>
		<td><br /></td>
	</tr>
</table>				
<table align="center">
	<tr>
		<td> 
			<textarea id="id_salida_calculos" cols="150" rows="20" style="font-size: 8pt;"></textarea>
		</td>
	</tr>
</table>
<script type="text/javascript" charset="UTF-8" src="<?php echo $base_url; ?>js/prediccion_ruta.js"></script>
<script type="text/javascript" id="javascript_source">
	var coordenadas_ruta;	
	var coordenadas_gps;
	var ultimo_recorrido_id;
	var ultimo_ruta_id;

	function limpiar_combobox(combobox){
		var length = combobox.options.length;
		for (i = 0; i < length; i++) {
			combobox.options[i] = null;
		}
		
		combobox.options.length = 0;
	}

	function nueva_opcion(valor, texto){
		var extra_opcion = document.createElement('option');
		extra_opcion.text = texto;
		extra_opcion.value = valor;
		
		return extra_opcion;
	}
			
	function ruta_seleccionada(ruta_id){	
		//Actualiza el contenido del combobox
		$.get("<?php echo $recorridos_url; ?>?id_ruta=" + ruta_id, 
			function(data_recorridos){
				var combo_recorridos = document.getElementById('id_recorrido_id');
				limpiar_combobox(combo_recorridos);
				
				combo_recorridos.add(nueva_opcion(0,"[Seleccione Recorrido]"));
				
				for (var i = 0; i < data_recorridos.length; i++){
					combo_recorridos.add(
						nueva_opcion(data_recorridos[i].id_recorrido_realizado, 
									"(" + data_recorridos[i].id_recorrido_realizado + ") - " + data_recorridos[i].fecha_salida)
					);
				}				
			});	
	}
	
	function calcular_error(){
		ultimo_recorrido_id = document.getElementById('id_recorrido_id').value;
		ultimo_ruta_id = document.getElementById('id_ruta_id').value;
		
		if(ultimo_ruta_id == "0"){
			alert("Seleccione una ruta");
			return;
		}
		
		if (ultimo_recorrido_id == "0"){
			alert("Seleccione un recorrido");
			return;
		}
		
		//Descargar coordenadas del recorrido y coordenadas de la ruta...
		//Primero descargar datos de ruta....
		$.get("<?php echo $coordenadas_ruta_url; ?>?id_ruta=" + ultimo_ruta_id, 
			function(data_ruta){
				coordenadas_ruta = data_ruta;
				
				//Ahora descargar datos del GPS del recorrido...
				$.get("<?php echo $coordenadas_gps_url; ?>?id_recorrido_realizado=" + ultimo_recorrido_id, 
					function(data_gps){
						coordenadas_gps = data_gps;
						
						continuacion_calcular_error(coordenadas_ruta, coordenadas_gps);
					});
			});											
	}
	
	function continuacion_calcular_error(data_ruta, data_gps){
		var modo_debug = document.getElementById('id_tipo_salida').value == "1";
				
		if (data_ruta.length == 0){
			alert("Datos de ruta no disponibles");
			return;
		}
		
		if (data_gps.length == 0){
			alert("El recorrido no tiene coordenadas del GPS");
			return;
		}
		
		if (data_ruta[0].velocidad_promedio == null){
			alert("Advertencia: El sistema no ha sido entrenado");
		} 
		

		var error_prediccion = calcular_error_prediccion(data_ruta, data_gps, modo_debug);
		
		document.getElementById('id_salida_calculos').innerHTML += error_prediccion.salida;
	}
</script>